<!--
  Copyright JS Foundation and other contributors, http://js.foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<script type="text/html" data-help-name="file">
    <p>Escribe <code>msg.payload</code> en un archivo, ya sea agregándolo al final o reemplazando el contenido existente.
        Alternativamente, puede eliminar el archivo.</p>
    <h3>Entradas</h3>
    <dl class="message-properties">
        <dt class="optional">filename <span class="property-type">texto</span></dt>
        <dd>El nombre del archivo que se actualizará se puede proporcionar en la configuración del nodo o como una propiedad del mensaje.
            De forma predeterminada utilizará <code>msg.filename</code> pero esto se puede personalizar en el nodo.
        </dd>
        <dt class="optional">encoding <span class="property-type">texto</span></dt>
        <dd>Si la codificación está configurada para que se establezca mediante mensaje, entonces esta propiedad opcional puede establecer la codificación.</dt>
    </dl>
    <h3>Salidas</h3>
    <p>Al finalizar la escritura, el mensaje de entrada se envía al puerto de salida.</p>
    <h3>Detalles</h3>
    <p>Cada carga de mensaje se agregará al final del archivo, añadiendo opcionalmente un carácter de nueva línea (\n) entre cada uno.</p>
    <p>Si se utiliza <code>msg.filename</code>, el archivo se cerrará después de cada escritura. Para obtener el mejor rendimiento, utiliza un nombre de archivo fijo.</p>
    <p>Se puede configurar para sobrescribir el archivo completo en lugar de agregarlo. Por ejemplo, al escribir datos binarios en un archivo, como una imagen, se debe usar esta opción y la opción de agregar una nueva línea debe estar deshabilitada.</p>
    <p>La codificación de los datos escritos en un archivo se puede especificar desde la lista de codificaciones.</p>
    <p>Como alternativa, este nodo se puede configurar para eliminar el archivo.</p>
</script>

<script type="text/html" data-help-name="file in">
    <p>Lee el contenido de un archivo como una cadena o un búfer binario.</p>
    <h3>Entradas</h3>
    <dl class="message-properties">
        <dt class="optional">filename <span class="property-type">texto</span></dt>
        <dd>El nombre del archivo que se va a leer se puede proporcionar en la configuración del nodo o como una propiedad del mensaje.
            De forma predeterminada utilizará <code>msg.filename</code> pero esto se puede personalizar en el nodo.
        </dd>
    </dl>
    <h3>Salidas</h3>
    <dl class="message-properties">
        <dt>payload <span class="property-type">texto | buffer</span></dt>
        <dd>El contenido del archivo como una cadena o un búfer binario.</dd>
        <dt class="optional">filename <span class="property-type">texto</span></dt>
        <dd>Si no está configurada en el nodo, esta propiedad opcional establece el nombre del archivo que se leerá.</dd>
    </dl>
    <h3>Detalles</h3>
    <p>El nombre del archivo debe ser una ruta absoluta; de lo contrario, será relativa al directorio de trabajo del proceso Node-RED.</p>
    <p>En Windows, es posible que sea necesario utilizar caracteres de escape en los separadores de ruta, por ejemplo: <code>\\Users\\myUser</code>.</p>
    <p>Opcionalmente, un archivo de texto se puede dividir en líneas, generando un mensaje por línea, o un archivo binario dividido en fragmentos de búfer más pequeños; el tamaño del fragmento depende del sistema operativo, pero normalmente 64k (Linux/Mac) o 41k (Windows).</p>
    <p>Cuando se divide en varios mensajes, cada mensaje tendrá una propiedad <code>parts</code> establecida, formando una secuencia de mensajes completa.</p>
    <p>La codificación de los datos de entrada se puede especificar desde la lista de codificaciones si el formato de salida es una cadena.</p>
    <p>Los errores deben detectarse y gestionarse mediante un nodo Captura (Catch).</p>
</script>
